package com.zucc.entity;

import javax.persistence.Column;
import javax.persistence.Id;
import java.io.Serializable;
import java.util.Date;

public class Experiment implements Serializable {
    /**
     * 表对象编号
     */
    @Id
    private Long id;

    /**
     * 是否被删除，0：未删除，1：已删除
     */
    @Column(name = "del_flag")
    private Integer delFlag;

    /**
     * 创建时间
     */
    @Column(name = "create_time")
    private Date createTime;

    /**
     * 创建人编号
     */
    @Column(name = "create_person_id")
    private Long createPersonId;

    /**
     * 最后修改时间
     */
    @Column(name = "modify_time")
    private Date modifyTime;

    /**
     * 最后修改人编号
     */
    @Column(name = "modify_person_id")
    private Long modifyPersonId;

    /**
     * 软删除时间
     */
    @Column(name = "delete_time")
    private Date deleteTime;

    /**
     * 删除人编号
     */
    @Column(name = "delete_person_id")
    private Long deletePersonId;

    /**
     * 备注
     */
    private String remarks;

    /**
     * 实验室名称
     */
    @Column(name = "laboratory_name")
    private String laboratoryName;

    /**
     * 实验项目统一编号
     */
    private String code;

    /**
     * 实验项目名称
     */
    private String name;

    /**
     * 本项目实验时数
     */
    private String hours;

    /**
     * 每批可开组数
     */
    @Column(name = "group_count")
    private Integer groupCount;

    /**
     * 每组人数
     */
    @Column(name = "group_person_count")
    private Integer groupPersonCount;

    /**
     * 实验类别
     */
    private String category;

    /**
     * 实验类型
     */
    private String type;

    /**
     * 实验要求
     */
    private String requirement;

    /**
     * 首开日期
     */
    @Column(name = "first_date")
    private String firstDate;

    /**
     * 实验分室名称
     */
    @Column(name = "laboratory_part_name")
    private String laboratoryPartName;

    /**
     * 课程号
     */
    @Column(name = "class_code")
    private String classCode;

    /**
     * 课程名称
     */
    @Column(name = "class_name")
    private String className;

    /**
     * 课程性质
     */
    @Column(name = "class_type")
    private String classType;

    /**
     * 周学时
     */
    @Column(name = "week_hours")
    private String weekHours;

    /**
     * 总学时数
     */
    @Column(name = "total_hours")
    private String totalHours;

    /**
     * 实验学时
     */
    @Column(name = "test_hours")
    private String testHours;

    /**
     * 面向专业
     */
    private String major;

    /**
     * 所属学科
     */
    private String subject;

    /**
     * 实验独立设课（是、否）
     */
    private String independent;

    /**
     * 审批状态，0:审批中，1:通过，2：驳回
     */
    @Column(name = "approval_status")
    private Integer approvalStatus;

    private static final long serialVersionUID = 1L;

    /**
     * 获取表对象编号
     *
     * @return id - 表对象编号
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置表对象编号
     *
     * @param id 表对象编号
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取是否被删除，0：未删除，1：已删除
     *
     * @return del_flag - 是否被删除，0：未删除，1：已删除
     */
    public Integer getDelFlag() {
        return delFlag;
    }

    /**
     * 设置是否被删除，0：未删除，1：已删除
     *
     * @param delFlag 是否被删除，0：未删除，1：已删除
     */
    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    /**
     * 获取创建时间
     *
     * @return create_time - 创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     *
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取创建人编号
     *
     * @return create_person_id - 创建人编号
     */
    public Long getCreatePersonId() {
        return createPersonId;
    }

    /**
     * 设置创建人编号
     *
     * @param createPersonId 创建人编号
     */
    public void setCreatePersonId(Long createPersonId) {
        this.createPersonId = createPersonId;
    }

    /**
     * 获取最后修改时间
     *
     * @return modify_time - 最后修改时间
     */
    public Date getModifyTime() {
        return modifyTime;
    }

    /**
     * 设置最后修改时间
     *
     * @param modifyTime 最后修改时间
     */
    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    /**
     * 获取最后修改人编号
     *
     * @return modify_person_id - 最后修改人编号
     */
    public Long getModifyPersonId() {
        return modifyPersonId;
    }

    /**
     * 设置最后修改人编号
     *
     * @param modifyPersonId 最后修改人编号
     */
    public void setModifyPersonId(Long modifyPersonId) {
        this.modifyPersonId = modifyPersonId;
    }

    /**
     * 获取软删除时间
     *
     * @return delete_time - 软删除时间
     */
    public Date getDeleteTime() {
        return deleteTime;
    }

    /**
     * 设置软删除时间
     *
     * @param deleteTime 软删除时间
     */
    public void setDeleteTime(Date deleteTime) {
        this.deleteTime = deleteTime;
    }

    /**
     * 获取删除人编号
     *
     * @return delete_person_id - 删除人编号
     */
    public Long getDeletePersonId() {
        return deletePersonId;
    }

    /**
     * 设置删除人编号
     *
     * @param deletePersonId 删除人编号
     */
    public void setDeletePersonId(Long deletePersonId) {
        this.deletePersonId = deletePersonId;
    }

    /**
     * 获取备注
     *
     * @return remarks - 备注
     */
    public String getRemarks() {
        return remarks;
    }

    /**
     * 设置备注
     *
     * @param remarks 备注
     */
    public void setRemarks(String remarks) {
        this.remarks = remarks == null ? null : remarks.trim();
    }

    /**
     * 获取实验室名称
     *
     * @return laboratory_name - 实验室名称
     */
    public String getLaboratoryName() {
        return laboratoryName;
    }

    /**
     * 设置实验室名称
     *
     * @param laboratoryName 实验室名称
     */
    public void setLaboratoryName(String laboratoryName) {
        this.laboratoryName = laboratoryName == null ? null : laboratoryName.trim();
    }

    /**
     * 获取实验项目统一编号
     *
     * @return code - 实验项目统一编号
     */
    public String getCode() {
        return code;
    }

    /**
     * 设置实验项目统一编号
     *
     * @param code 实验项目统一编号
     */
    public void setCode(String code) {
        this.code = code == null ? null : code.trim();
    }

    /**
     * 获取实验项目名称
     *
     * @return name - 实验项目名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置实验项目名称
     *
     * @param name 实验项目名称
     */
    public void setName(String name) {
        this.name = name == null ? null : name.trim();
    }

    /**
     * 获取本项目实验时数
     *
     * @return hours - 本项目实验时数
     */
    public String getHours() {
        return hours;
    }

    /**
     * 设置本项目实验时数
     *
     * @param hours 本项目实验时数
     */
    public void setHours(String hours) {
        this.hours = hours == null ? null : hours.trim();
    }

    /**
     * 获取每批可开组数
     *
     * @return group_count - 每批可开组数
     */
    public Integer getGroupCount() {
        return groupCount;
    }

    /**
     * 设置每批可开组数
     *
     * @param groupCount 每批可开组数
     */
    public void setGroupCount(Integer groupCount) {
        this.groupCount = groupCount;
    }

    /**
     * 获取每组人数
     *
     * @return group_person_count - 每组人数
     */
    public Integer getGroupPersonCount() {
        return groupPersonCount;
    }

    /**
     * 设置每组人数
     *
     * @param groupPersonCount 每组人数
     */
    public void setGroupPersonCount(Integer groupPersonCount) {
        this.groupPersonCount = groupPersonCount;
    }

    /**
     * 获取实验类别
     *
     * @return category - 实验类别
     */
    public String getCategory() {
        return category;
    }

    /**
     * 设置实验类别
     *
     * @param category 实验类别
     */
    public void setCategory(String category) {
        this.category = category == null ? null : category.trim();
    }

    /**
     * 获取实验类型
     *
     * @return type - 实验类型
     */
    public String getType() {
        return type;
    }

    /**
     * 设置实验类型
     *
     * @param type 实验类型
     */
    public void setType(String type) {
        this.type = type == null ? null : type.trim();
    }

    /**
     * 获取实验要求
     *
     * @return requirement - 实验要求
     */
    public String getRequirement() {
        return requirement;
    }

    /**
     * 设置实验要求
     *
     * @param requirement 实验要求
     */
    public void setRequirement(String requirement) {
        this.requirement = requirement == null ? null : requirement.trim();
    }

    /**
     * 获取首开日期
     *
     * @return first_date - 首开日期
     */
    public String getFirstDate() {
        return firstDate;
    }

    /**
     * 设置首开日期
     *
     * @param firstDate 首开日期
     */
    public void setFirstDate(String firstDate) {
        this.firstDate = firstDate == null ? null : firstDate.trim();
    }

    /**
     * 获取实验分室名称
     *
     * @return laboratory_part_name - 实验分室名称
     */
    public String getLaboratoryPartName() {
        return laboratoryPartName;
    }

    /**
     * 设置实验分室名称
     *
     * @param laboratoryPartName 实验分室名称
     */
    public void setLaboratoryPartName(String laboratoryPartName) {
        this.laboratoryPartName = laboratoryPartName == null ? null : laboratoryPartName.trim();
    }

    /**
     * 获取课程号
     *
     * @return class_code - 课程号
     */
    public String getClassCode() {
        return classCode;
    }

    /**
     * 设置课程号
     *
     * @param classCode 课程号
     */
    public void setClassCode(String classCode) {
        this.classCode = classCode == null ? null : classCode.trim();
    }

    /**
     * 获取课程名称
     *
     * @return class_name - 课程名称
     */
    public String getClassName() {
        return className;
    }

    /**
     * 设置课程名称
     *
     * @param className 课程名称
     */
    public void setClassName(String className) {
        this.className = className == null ? null : className.trim();
    }

    /**
     * 获取课程性质
     *
     * @return class_type - 课程性质
     */
    public String getClassType() {
        return classType;
    }

    /**
     * 设置课程性质
     *
     * @param classType 课程性质
     */
    public void setClassType(String classType) {
        this.classType = classType == null ? null : classType.trim();
    }

    /**
     * 获取周学时
     *
     * @return week_hours - 周学时
     */
    public String getWeekHours() {
        return weekHours;
    }

    /**
     * 设置周学时
     *
     * @param weekHours 周学时
     */
    public void setWeekHours(String weekHours) {
        this.weekHours = weekHours == null ? null : weekHours.trim();
    }

    /**
     * 获取总学时数
     *
     * @return total_hours - 总学时数
     */
    public String getTotalHours() {
        return totalHours;
    }

    /**
     * 设置总学时数
     *
     * @param totalHours 总学时数
     */
    public void setTotalHours(String totalHours) {
        this.totalHours = totalHours == null ? null : totalHours.trim();
    }

    /**
     * 获取实验学时
     *
     * @return test_hours - 实验学时
     */
    public String getTestHours() {
        return testHours;
    }

    /**
     * 设置实验学时
     *
     * @param testHours 实验学时
     */
    public void setTestHours(String testHours) {
        this.testHours = testHours == null ? null : testHours.trim();
    }

    /**
     * 获取面向专业
     *
     * @return major - 面向专业
     */
    public String getMajor() {
        return major;
    }

    /**
     * 设置面向专业
     *
     * @param major 面向专业
     */
    public void setMajor(String major) {
        this.major = major == null ? null : major.trim();
    }

    /**
     * 获取所属学科
     *
     * @return subject - 所属学科
     */
    public String getSubject() {
        return subject;
    }

    /**
     * 设置所属学科
     *
     * @param subject 所属学科
     */
    public void setSubject(String subject) {
        this.subject = subject == null ? null : subject.trim();
    }

    /**
     * 获取实验独立设课（是、否）
     *
     * @return independent - 实验独立设课（是、否）
     */
    public String getIndependent() {
        return independent;
    }

    /**
     * 设置实验独立设课（是、否）
     *
     * @param independent 实验独立设课（是、否）
     */
    public void setIndependent(String independent) {
        this.independent = independent == null ? null : independent.trim();
    }

    /**
     * 获取审批状态，0:审批中，1:通过，2：驳回
     *
     * @return approval_status - 审批状态，0:审批中，1:通过，2：驳回
     */
    public Integer getApprovalStatus() {
        return approvalStatus;
    }

    /**
     * 设置审批状态，0:审批中，1:通过，2：驳回
     *
     * @param approvalStatus 审批状态，0:审批中，1:通过，2：驳回
     */
    public void setApprovalStatus(Integer approvalStatus) {
        this.approvalStatus = approvalStatus;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", delFlag=").append(delFlag);
        sb.append(", createTime=").append(createTime);
        sb.append(", createPersonId=").append(createPersonId);
        sb.append(", modifyTime=").append(modifyTime);
        sb.append(", modifyPersonId=").append(modifyPersonId);
        sb.append(", deleteTime=").append(deleteTime);
        sb.append(", deletePersonId=").append(deletePersonId);
        sb.append(", remarks=").append(remarks);
        sb.append(", laboratoryName=").append(laboratoryName);
        sb.append(", code=").append(code);
        sb.append(", name=").append(name);
        sb.append(", hours=").append(hours);
        sb.append(", groupCount=").append(groupCount);
        sb.append(", groupPersonCount=").append(groupPersonCount);
        sb.append(", category=").append(category);
        sb.append(", type=").append(type);
        sb.append(", requirement=").append(requirement);
        sb.append(", firstDate=").append(firstDate);
        sb.append(", laboratoryPartName=").append(laboratoryPartName);
        sb.append(", classCode=").append(classCode);
        sb.append(", className=").append(className);
        sb.append(", classType=").append(classType);
        sb.append(", weekHours=").append(weekHours);
        sb.append(", totalHours=").append(totalHours);
        sb.append(", testHours=").append(testHours);
        sb.append(", major=").append(major);
        sb.append(", subject=").append(subject);
        sb.append(", independent=").append(independent);
        sb.append(", approvalStatus=").append(approvalStatus);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}